Ce matin, en me levant, j'ai eu la surprise de voir, sur twitter, un échange entre deux programmeurs que je "follow".
A ma gauche, David Capello, developpeur indépendant d'Aseprite, un soft de PixelArt fantastique (vous vous souvenez de Deluxe Paint ? Ben pareil.) que j'utilise sur toutes mes prod'.
A ma droite, Jonathan Blow, programmeur-créateur indépendant star de Braid et du futur The Witness.
Il faut savoir que Jon Blow tweet régulièrement ses griefs contre Visual Studio (la suite de developpement de Microsoft) ou tout autre langage de programmation qu'il a à utiliser pour bosser. Je vous avoue que c'est très obscure, même pour moi, car très très technique, mais on saisit assez facilement que "c'est mal branlé, pénible, pensé avec la bite, etc" pour le pote à McMillen et Fish.
C'est d'ailleurs, pour moi, assez amusant de le voir se plaindre de défauts ou de choix bancales alors que c'est ce que l'on retrouve également dans Braid. Ce type doit avoir un cerveau étrange, et c'est pas la première vidéo où il montre et explique l'un des premiers puzzles de The Witness qui va me faire changer d'avis.
Voilà donc la discussion avec en dessous, une traduction en français, pour les jeunes et les vieux qui n'ont pas bien étudié en cours.
Le RAII (Resource Acquisition Is Initialization) est une technique qui permet de créé une ressource quand tu en a besoin pour un objet et de la relaché quand tu détruis cette objet. Enfin, c'est ce que j'ai compris de mon pote Wikipedia. Mais c'est pas très important, en fait.
Jon Blow : Le deplacement du RAII pour le C++ est zarb'. Si c'est ça que vous pensez être "bien programmer", pourquoi utiliser un langage (NdT : le C++, donc) qui encourage l'opposé ?
Jon Blow : N'auriez vous du pas faire votre langage naturellement RAII, plutôt que de devoir les hacker ensemble (NdT : le C++ et la technique RAII, suivez un peu, là !) d'une façon fastidieuse et sujette aux erreurs ?
Jon Blow : (Oui, Je sais que vous voulez la RAII pour les exceptions, mais initialement les exceptions sont vraiment une mauvaise idée.)
David Capello : La RAII est la "façon" de penser avec le C++. Si tu penses que le C++ ne l'encourage pas à l'utiliser, c'ets aprce que tu utilise le C++ d'une mauvaise façon.
JonBlow : Quel est le truc le plus gros et le plus complexe que tu as eu à programmer ?
David Capello : En C++ et open source : https://github.com/aseprite/aseprite et https://github.com/dacap/vaca
JonBlow : Donc, sur quelle base penses tu être à l'aise pour me dire que je fais mal les choses quand ton plus gros projet est un editeur de sprite ?
David Capello : Je ne [vois, comprends] pas pourquoi tu penses que la taille d'un projet est lié à la bonne utilisation d'un outil
David Capello : Le point principal ici, c'est pourquoi tu pense que le C++ n'encourage pas le style RAII ? (Même si tu n'utilise pas d'exceptions, c'est le "style C++").
Voila, voila.
Jon Blow ne supporte donc pas qu'un "petit developpeur" mette en doute ses capacitées, et lui demande ce qu'il a produit de son coté pour osé lui apprendre à coder (Alors que lui se permet de donner des "conseils" à John Carmack. JOHN CARMACK. Le mec derrière tout les ID Tech. Ah oui, et puis que Braid est mieux que Mario Bros aussi).
Ca m'a rappelé certains débatalacon que l'on peut (et que j'ai eu) avoir sur les forums de communautées de joueurs.
On voit généralement un joueur/consommateur tenter de rabaisser son opposant, dev dans le jeux vidéo, en lui demandant (ou les lui rappelant) quels jeux il a fait pour pouvoir l'ouvrir.
Pourtant, il y a une grosse différence entre un echange entre un joueur et un dev qui a fait des jeux inconnus et l'echange entre Blow et Capello.
- Dans le premier cas, on a un intervenant qui est en bout de chaine, qui n'a pas d'expérience professionelles et qui se base généralement que sur ce qu'il lit. De l'autre, on a un intervenant dont c'est le métier et qui a les clés pour être un "éclairé"
- Dans le second cas, on a deux intervenant qui ont le même job mais qui ne font pas le même produit (surtout que Capello est seul, là où Blow a une team). Et l'un des deux s'arroge le droit de se mettre au dessus de l'autre parce qu'il estime que ses travaux (enfin, son travail, pour l'instant) sont beaucoup plus complexes, gros voir interessants, pour lui permettre d'avoir la légitimité du mec qui sait.
Moi, avec ma dizaine de jeux produits, passé plus ou moins inaperçu, ais-je la légitimité de dire que le seul jeu de Blow, Braid, millions seller, c'est nullos et que Jonathan est une andouille ou non ?
Je crois que vous avez la réponse :D